MATLAB® is a product of The MathWorks, Inc. of Natick, Mass., which provides engineers, scientists, mathematicians, and educators across a diverse range of industries with an environment for technical computing applications. MATLAB® is an intuitive high performance language and technical computing environment that provides mathematical and graphical tools for mathematical computation, data analysis, visualization and algorithm development. MATLAB® integrates numerical analysis, matrix computation, signal processing, and graphics in an easy-to-use environment where problems and solutions are expressed in familiar mathematical notation, without traditional programming. MATLAB® is used to solve complex engineering and scientific problems by developing mathematical models that simulate the problem. A model is prototyped, tested and analyzed by running the model under multiple boundary conditions, data parameters, or just a number of initial guesses. In MATLAB®, one can easily modify the model, plot a new variable or reformulate the problem in a rapid interactive fashion that is typically not feasible in a non-interpreted programming language such as Fortran or C.
As a desktop application, MATLAB® allows scientists and engineers to interactively perform complex analysis and modeling in their familiar worker environment. However, a single worker can be limiting to the size of the problem that can be solved, because of the relationship of the computing power of the worker to the computing power necessary to execute computing intensive iterative processing of complex problems in a reasonable time. For example, a simulation of a large complex aircraft model may take a reasonable time to run with a single computer with a specified set of parameters. However, the analysis of the problem may also require the model be computed multiple times with a different set of parameters, e.g., at one-hundred different altitude levels and fifty different aircraft weights, to understand the behavior of the model under varied conditions. This would require five-thousand computations to analyze the problem as desired and the single computer would take an unreasonable or undesirable amount of time to perform these simulations. In this case, the single computer would be allocated full-time to performing the computation while many computer resources on the network may be idle. Additionally, the benefit of the interactive features of the software is reduced as the computation time increases.
With many engineering and scientific problems requiring larger and more complex modeling, computations accordingly become more resource intensive and time-consuming. When a computation becomes so large and complex that it cannot be completed in a reasonable amount of time on a single computer, a solution to decrease the computation time is needed. As a solution, distributed computing systems have been provided to deal with a large and complex engineering and scientific computation. In the distributed computing systems, a job manager or scheduler may be employed to distribute a given computation to remote computing entities so that the remote computing entities are able to perform the distributed computation. The job manager or scheduler may be provided by various vendors, and may be unique in many respects. Therefore, it is needed for the distributed computing environment to interface with arbitrary job managers provided by arbitrary vendors (i.e., any one of a number of different job managers).
Co-pending U.S. patent application Ser. No. 10/940,151 filed on Sep. 13, 2004, which is a continuation-in-part of pending U.S. Applications Nos. 10/729,752 filed Dec. 4, 2003, Ser. No. 10/896,671 filed Jul. 21, 2004 and Ser. No. 10/896,784 filed Jul. 21, 2004, discloses an interface with an arbitrary job manager or scheduler, which is specific to the job manager or scheduler. Since the interface is specific to the job manager or scheduler, an interface must be built whenever a new job manager or scheduler is plugged in. Therefore, there is a need for a general interface that can be used independently of the job managers or schedulers.